| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105 | 8×
1×
317522×
41058×
1×
1×
1×
1×
1×
1×
1×
1×
12262×
12262×
12262×
12262×
1×
23099×
12262×
12262×
12262×
12262×
10830×
10830×
1×
1×
| var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; Eif ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { Eif (protoProps) defineProperties(Constructor.prototype, protoProps); Iif (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _classCallCheck(instance, Constructor) { Iif (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { Iif (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { Iif (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); Eif (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
Iif (typeof define !== 'function') {
var define = require('amdefine')(module);
}
define(function (require) {
'use strict';
var util = require('./util');
var EventTarget = require('fc-mini-event/EventTarget');
var View = function (_EventTarget) {
_inherits(View, _EventTarget);
function View() {
_classCallCheck(this, View);
var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(View).call(this));
_this.initialize();
return _this;
}
_createClass(View, [{
key: 'initialize',
value: function initialize() {}
}, {
key: 'getTemplateName',
value: function getTemplateName() {
return this.template || '';
}
}, {
key: 'getContainerElement',
value: function getContainerElement() {
return util.getElement(this.container) || null;
}
}, {
key: 'getTemplateData',
value: function getTemplateData() {
var model = this.model;
if (model && typeof model.get !== 'function') {
var Model = require('./Model');
model = new Model({ args: model });
}
var visit = function visit(propertyPath) {
var path = propertyPath.replace(/\[(\d+)\]/g, '.$1').split('.');
var propertyName = path.shift();
var value = model.get(propertyName);
while (value && (propertyName = path.shift())) {
value = value[propertyName];
}
return value;
};
return { get: visit, relatedModel: model };
}
}, {
key: 'renderToString',
value: function renderToString() {
var template = require('etpl');
return template.render(this.getTemplateName(), this.getTemplateData());
}
}, {
key: 'render',
value: function render() {
var container = this.getContainerElement();
// 容器没有还不一定是没配置好,很可能是主Action销毁了子Action才刚加载完
Iif (!container) {
var url = this.model && typeof this.model.get === 'function' && this.model.get('url');
throw new Error('Container not found when rendering ' + (url ? '"' + url + '"' : 'view'));
}
container.innerHTML = this.renderToString();
this.enterDocument();
}
}, {
key: 'enterDocument',
value: function enterDocument() {}
}, {
key: 'dispose',
value: function dispose() {
var container = this.getContainerElement();
container && (container.innerHTML = '');
}
}]);
return View;
}(EventTarget);
return View;
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9WaWV3LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFJLE9BQU8sTUFBUCxLQUFrQixVQUFsQixFQUE4QjtBQUFDLFFBQUksU0FBUyxRQUFRLFVBQVIsRUFBb0IsTUFBcEIsQ0FBVCxDQUFMO0NBQWxDOztBQUVBLE9BQU8sVUFBVSxPQUFWLEVBQW1CO0FBQ3RCLGlCQURzQjs7QUFHdEIsUUFBTSxPQUFPLFFBQVEsUUFBUixDQUFQLENBSGdCO0FBSXRCLFFBQU0sY0FBYyxRQUFRLDJCQUFSLENBQWQsQ0FKZ0I7O1FBTWhCOzs7QUFDRix3QkFBYzs7Ozs7QUFFVixrQkFBSyxVQUFMLEdBRlU7O1NBQWQ7Ozs7eUNBS2E7Ozs4Q0FFSztBQUNkLHVCQUFPLEtBQUssUUFBTCxJQUFpQixFQUFqQixDQURPOzs7O2tEQUlJO0FBQ2xCLHVCQUFPLEtBQUssVUFBTCxDQUFnQixLQUFLLFNBQUwsQ0FBaEIsSUFBbUMsSUFBbkMsQ0FEVzs7Ozs4Q0FJSjtBQUNkLG9CQUFJLFFBQVEsS0FBSyxLQUFMLENBREU7QUFFZCxvQkFBSSxTQUFTLE9BQU8sTUFBTSxHQUFOLEtBQWMsVUFBckIsRUFBaUM7QUFDMUMsd0JBQU0sUUFBUSxRQUFRLFNBQVIsQ0FBUixDQURvQztBQUUxQyw0QkFBUSxJQUFJLEtBQUosQ0FBVSxFQUFDLE1BQU0sS0FBTixFQUFYLENBQVIsQ0FGMEM7aUJBQTlDOztBQUtBLG9CQUFNLFFBQVEsU0FBUixLQUFRLENBQUMsWUFBRCxFQUFrQjtBQUM1Qix3QkFBTSxPQUFPLGFBQWEsT0FBYixDQUFxQixZQUFyQixFQUFtQyxLQUFuQyxFQUEwQyxLQUExQyxDQUFnRCxHQUFoRCxDQUFQLENBRHNCO0FBRTVCLHdCQUFJLGVBQWUsS0FBSyxLQUFMLEVBQWYsQ0FGd0I7QUFHNUIsd0JBQUksUUFBUSxNQUFNLEdBQU4sQ0FBVSxZQUFWLENBQVIsQ0FId0I7O0FBSzVCLDJCQUFPLFVBQVUsZUFBZSxLQUFLLEtBQUwsRUFBZixDQUFWLEVBQXdDO0FBQzNDLGdDQUFRLE1BQU0sWUFBTixDQUFSLENBRDJDO3FCQUEvQzs7QUFJQSwyQkFBTyxLQUFQLENBVDRCO2lCQUFsQixDQVBBOztBQW1CZCx1QkFBTyxFQUFDLEtBQUssS0FBTCxFQUFZLGNBQWMsS0FBZCxFQUFwQixDQW5CYzs7Ozs2Q0FzQkQ7QUFDYixvQkFBTSxXQUFXLFFBQVEsTUFBUixDQUFYLENBRE87QUFFYix1QkFBTyxTQUFTLE1BQVQsQ0FBZ0IsS0FBSyxlQUFMLEVBQWhCLEVBQXdDLEtBQUssZUFBTCxFQUF4QyxDQUFQLENBRmE7Ozs7cUNBS1I7QUFDTCxvQkFBTSxZQUFZLEtBQUssbUJBQUwsRUFBWjs7QUFERCxvQkFHRCxDQUFDLFNBQUQsRUFBWTtBQUNaLHdCQUFJLE1BQU0sS0FBSyxLQUFMLElBQWMsT0FBTyxLQUFLLEtBQUwsQ0FBVyxHQUFYLEtBQW1CLFVBQTFCLElBQXdDLEtBQUssS0FBTCxDQUFXLEdBQVgsQ0FBZSxLQUFmLENBQXRELENBREU7QUFFWiwwQkFBTSxJQUFJLEtBQUosQ0FBVSx5Q0FBeUMsTUFBTSxNQUFNLEdBQU4sR0FBWSxHQUFaLEdBQWtCLE1BQXhCLENBQXpDLENBQWhCLENBRlk7aUJBQWhCOztBQUtBLDBCQUFVLFNBQVYsR0FBc0IsS0FBSyxjQUFMLEVBQXRCLENBUks7O0FBVUwscUJBQUssYUFBTCxHQVZLOzs7OzRDQWFPOzs7c0NBRU47QUFDTixvQkFBTSxZQUFZLEtBQUssbUJBQUwsRUFBWixDQURBO0FBRU4sOEJBQWMsVUFBVSxTQUFWLEdBQXNCLEVBQXRCLENBQWQsQ0FGTTs7Ozs7TUExREssYUFORzs7QUFzRXRCLFdBQU8sSUFBUCxDQXRFc0I7Q0FBbkIsQ0FBUCIsImZpbGUiOiJWaWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaWYgKHR5cGVvZiBkZWZpbmUgIT09ICdmdW5jdGlvbicpIHt2YXIgZGVmaW5lID0gcmVxdWlyZSgnYW1kZWZpbmUnKShtb2R1bGUpfVxuXG5kZWZpbmUoZnVuY3Rpb24gKHJlcXVpcmUpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICBjb25zdCB1dGlsID0gcmVxdWlyZSgnLi91dGlsJyk7XG4gICAgY29uc3QgRXZlbnRUYXJnZXQgPSByZXF1aXJlKCdmYy1taW5pLWV2ZW50L0V2ZW50VGFyZ2V0Jyk7XG5cbiAgICBjbGFzcyBWaWV3IGV4dGVuZHMgRXZlbnRUYXJnZXQge1xuICAgICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgICAgIHN1cGVyKCk7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGluaXRpYWxpemUoKSB7fVxuXG4gICAgICAgIGdldFRlbXBsYXRlTmFtZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRlbXBsYXRlIHx8ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2V0Q29udGFpbmVyRWxlbWVudCgpIHtcbiAgICAgICAgICAgIHJldHVybiB1dGlsLmdldEVsZW1lbnQodGhpcy5jb250YWluZXIpIHx8IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBnZXRUZW1wbGF0ZURhdGEoKSB7XG4gICAgICAgICAgICBsZXQgbW9kZWwgPSB0aGlzLm1vZGVsO1xuICAgICAgICAgICAgaWYgKG1vZGVsICYmIHR5cGVvZiBtb2RlbC5nZXQgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBNb2RlbCA9IHJlcXVpcmUoJy4vTW9kZWwnKTtcbiAgICAgICAgICAgICAgICBtb2RlbCA9IG5ldyBNb2RlbCh7YXJnczogbW9kZWx9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgdmlzaXQgPSAocHJvcGVydHlQYXRoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IHByb3BlcnR5UGF0aC5yZXBsYWNlKC9cXFsoXFxkKylcXF0vZywgJy4kMScpLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICAgICAgbGV0IHByb3BlcnR5TmFtZSA9IHBhdGguc2hpZnQoKTtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBtb2RlbC5nZXQocHJvcGVydHlOYW1lKTtcblxuICAgICAgICAgICAgICAgIHdoaWxlICh2YWx1ZSAmJiAocHJvcGVydHlOYW1lID0gcGF0aC5zaGlmdCgpKSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlW3Byb3BlcnR5TmFtZV07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIHtnZXQ6IHZpc2l0LCByZWxhdGVkTW9kZWw6IG1vZGVsfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlbmRlclRvU3RyaW5nKCkge1xuICAgICAgICAgICAgY29uc3QgdGVtcGxhdGUgPSByZXF1aXJlKCdldHBsJyk7XG4gICAgICAgICAgICByZXR1cm4gdGVtcGxhdGUucmVuZGVyKHRoaXMuZ2V0VGVtcGxhdGVOYW1lKCksIHRoaXMuZ2V0VGVtcGxhdGVEYXRhKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVuZGVyKCkge1xuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5nZXRDb250YWluZXJFbGVtZW50KCk7XG4gICAgICAgICAgICAvLyDlrrnlmajmsqHmnInov5jkuI3kuIDlrprmmK/msqHphY3nva7lpb3vvIzlvojlj6/og73mmK/kuLtBY3Rpb27plIDmr4HkuoblrZBBY3Rpb27miY3liJrliqDovb3lroxcbiAgICAgICAgICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgbGV0IHVybCA9IHRoaXMubW9kZWwgJiYgdHlwZW9mIHRoaXMubW9kZWwuZ2V0ID09PSAnZnVuY3Rpb24nICYmIHRoaXMubW9kZWwuZ2V0KCd1cmwnKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbnRhaW5lciBub3QgZm91bmQgd2hlbiByZW5kZXJpbmcgJyArICh1cmwgPyAnXCInICsgdXJsICsgJ1wiJyA6ICd2aWV3JykpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gdGhpcy5yZW5kZXJUb1N0cmluZygpO1xuXG4gICAgICAgICAgICB0aGlzLmVudGVyRG9jdW1lbnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVudGVyRG9jdW1lbnQoKSB7fVxuXG4gICAgICAgIGRpc3Bvc2UoKSB7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldENvbnRhaW5lckVsZW1lbnQoKTtcbiAgICAgICAgICAgIGNvbnRhaW5lciAmJiAoY29udGFpbmVyLmlubmVySFRNTCA9ICcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBWaWV3O1xufSk7XG4iXX0= |